/*
 * Copyright (C) 2011-2016 Markus Junginger, greenrobot (http://greenrobot.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package com.wss.module.market.bean;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import java.util.Map;

/**
 * DaoSession
 */
public class DaoSession extends AbstractDaoSession {
    private final DaoConfig noteDaoConfig;

    private final GoodsInfoDao goodsInfoDao;

    /**
     * DaoSession.
     *
     * @param db Database
     * @param type IdentityScopeType
     * @param daoConfigMap daoConfigMap
     */
    public DaoSession(Database db, IdentityScopeType type,
        Map<Class<? extends AbstractDao<?, ?>>, DaoConfig> daoConfigMap) {
        super(db);

        noteDaoConfig = daoConfigMap.get(GoodsInfoDao.class).clone();
        noteDaoConfig.initIdentityScope(type);

        goodsInfoDao = new GoodsInfoDao(noteDaoConfig, this);

        registerDao(GoodsInfo.class, goodsInfoDao);
    }

    /**
     * clear the identity scope.
     */
    public void clear() {
        noteDaoConfig.clearIdentityScope();
    }

    public GoodsInfoDao getGoodsInfoDao() {
        return goodsInfoDao;
    }
}
